package collection;

import java.util.Deque;
import java.util.LinkedList;

/**
 *  栈结构
 *  栈可以保存一组元素,但是存取元素必须遵循先进后出原则.FILO(First Input,Last Output)
 *  Deque双端队列如果只调用从同一侧做出入操作时就形成了栈结构.因此双端队列也为栈提供了两个
 *  经典的方法名:push(入栈),pop(出栈)
 *
 *  通常我们使用栈结构用来完成如"后退"这样的功能
 */
public class StackDemo {
    public static void main(String[] args) {
        Deque<String> stack = new LinkedList<>();
        stack.push("one");
        stack.push("two");
        stack.push("three");
        stack.push("four");
        System.out.println(stack);

        System.out.println(stack.pop());
        System.out.println(stack);

        for (String e : stack){
            System.out.println(e);
        }
        while (stack.size()>0){
            System.out.println(stack.pop());
        }
        System.out.println(stack);
    }
}